package com.gkd.mapper;

import com.gkd.pojo.User;
import com.gkd.pojo.UserPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {
    //根据id获得用户
    User getByIdUser(int id);

    //查询对应角色的所有用户
    List<User> getAllUser(int roleId);

    //分页查询
    List<User> getPageUser(@Param("roleId")int roleId, @Param("pageNum") int pageNum, @Param("pageSize") int pageSize);

    //新增用户
    int addUser(User user);

    //根据id删除用户
    int deleteUser(int id);

    //修改用户
    int updateUser(User user);

    //根据用户名和密码查询用户
    User getByIdAndPwdUser(@Param("no") String no, @Param("password") String password);

    //根据用户性别查询用户
    List<User> getBySexUser(@Param("roleId") int roleId,@Param("sex") String sex);

    //根据用户性别查询用户并分页
    List<UserPage> getBySexPageUser(@Param("roleId") int roleId,@Param("sex") String sex, @Param("pageNum") int pageNum, @Param("pageSize") int pageSize);

    //根据用户姓名模糊查询用户
    List<User> getByNameUser(@Param("roleId") int roleId,@Param("name") String name);

    //根据用户姓名模糊查询用户并分页
    List<UserPage> getByNamePageUser(@Param("roleId") int roleId,@Param("name") String name,@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);

    //根据用户姓名和性别模糊查询用户并分页
    List<User> getBySexAndNameUser(@Param("roleId") int roleId,@Param("name") String name, @Param("sex") String sex);

    //根据用户姓名和性别模糊查询用户并分页
    List<UserPage> getBySexAndNamePageUser(@Param("roleId") int roleId, @Param("name") String name, @Param("sex") String sex,@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
}
